{ .x = REAL(FN32(0x1.921fcp0), FN64(0x1.921fcp0), FN80(0x1.921fcp0), FN128(0x1.921fcp0)), .y = REAL(FN32(-0x1.7d9d38p20), FN64(-0x1.7d9d370b14023p20), FN80(-0x1.7d9d370b140234d4p20), FN128(-0x1.7d9d370b140234d37501f83845c2p20)) },
{ .x = REAL(FN32(0x1.b38fb8p-127), FN64(0x1.b38fb9daa78e4p-127), FN80(0x1.b38fb9daa78e44acp-127), FN128(0x1.b38fb9daa78e44ab2dcf7a6b1921p-127)), .y = REAL(FN32(0x1.b38fb8p-127), FN64(0x1.b38fb9daa78e4p-127), FN80(0x1.b38fb9daa78e44acp-127), FN128(0x1.b38fb9daa78e44ab2dcf7a6b1921p-127)) },
{ .x = REAL(FN32(0x1.2b72dp-123), FN64(0x1.2b72cfc65331dp-123), FN80(0x1.2b72cfc65331cf36p-123), FN128(0x1.2b72cfc65331cf35af7ea429a146p-123)), .y = REAL(FN32(0x1.2b72dp-123), FN64(0x1.2b72cfc65331dp-123), FN80(0x1.2b72cfc65331cf36p-123), FN128(0x1.2b72cfc65331cf35af7ea429a146p-123)) },
{ .x = REAL(FN32(0x1.9bbddep-120), FN64(0x1.9bbdddb0b2648p-120), FN80(0x1.9bbdddb0b2647ceap-120), FN128(0x1.9bbdddb0b2647ce9d14e21b93dc1p-120)), .y = REAL(FN32(0x1.9bbddep-120), FN64(0x1.9bbdddb0b2648p-120), FN80(0x1.9bbdddb0b2647ceap-120), FN128(0x1.9bbdddb0b2647ce9d14e21b93dc1p-120)) },
{ .x = REAL(FN32(0x1.1b1288p-116), FN64(0x1.1b1288697aa51p-116), FN80(0x1.1b1288697aa515ep-116), FN128(0x1.1b1288697aa515e0bfe5b72f5a75p-116)), .y = REAL(FN32(0x1.1b1288p-116), FN64(0x1.1b1288697aa51p-116), FN80(0x1.1b1288697aa515ep-116), FN128(0x1.1b1288697aa515e0bfe5b72f5a75p-116)) },
{ .x = REAL(FN32(0x1.85397cp-113), FN64(0x1.85397b9108a3p-113), FN80(0x1.85397b9108a2fe16p-113), FN128(0x1.85397b9108a2fe1507dbdbe11c6p-113)), .y = REAL(FN32(0x1.85397cp-113), FN64(0x1.85397b9108a3p-113), FN80(0x1.85397b9108a2fe16p-113), FN128(0x1.85397b9108a2fe1507dbdbe11c6p-113)) },
{ .x = REAL(FN32(0x1.0b9784p-109), FN64(0x1.0b9784f3b5f01p-109), FN80(0x1.0b9784f3b5f00eaep-109), FN128(0x1.0b9784f3b5f00eae7567272ac382p-109)), .y = REAL(FN32(0x1.0b9784p-109), FN64(0x1.0b9784f3b5f01p-109), FN80(0x1.0b9784f3b5f00eaep-109), FN128(0x1.0b9784f3b5f00eae7567272ac382p-109)) },
{ .x = REAL(FN32(0x1.6ff056p-106), FN64(0x1.6ff056cf1a2a1p-106), FN80(0x1.6ff056cf1a2a143p-106), FN128(0x1.6ff056cf1a2a142fe16dd5daccd3p-106)), .y = REAL(FN32(0x1.6ff056p-106), FN64(0x1.6ff056cf1a2a1p-106), FN80(0x1.6ff056cf1a2a143p-106), FN128(0x1.6ff056cf1a2a142fe16dd5daccd3p-106)) },
{ .x = REAL(FN32(0x1.f9ea78p-103), FN64(0x1.f9ea775cc3f9ep-103), FN80(0x1.f9ea775cc3f9dbc2p-103), FN128(0x1.f9ea775cc3f9dbc1d5f7060cd9a2p-103)), .y = REAL(FN32(0x1.f9ea78p-103), FN64(0x1.f9ea775cc3f9ep-103), FN80(0x1.f9ea775cc3f9dbc2p-103), FN128(0x1.f9ea775cc3f9dbc1d5f7060cd9a2p-103)) },
{ .x = REAL(FN32(0x1.5bd132p-99), FN64(0x1.5bd1320fc6bbcp-99), FN80(0x1.5bd1320fc6bbc716p-99), FN128(0x1.5bd1320fc6bbc7154319d428d59fp-99)), .y = REAL(FN32(0x1.5bd132p-99), FN64(0x1.5bd1320fc6bbcp-99), FN80(0x1.5bd1320fc6bbc716p-99), FN128(0x1.5bd1320fc6bbc7154319d428d59fp-99)) },
{ .x = REAL(FN32(0x1.de3fa4p-96), FN64(0x1.de3fa4d5b1423p-96), FN80(0x1.de3fa4d5b14231bep-96), FN128(0x1.de3fa4d5b14231bd3c4383b825bbp-96)), .y = REAL(FN32(0x1.de3fa4p-96), FN64(0x1.de3fa4d5b1423p-96), FN80(0x1.de3fa4d5b14231bep-96), FN128(0x1.de3fa4d5b14231bd3c4383b825bbp-96)) },
{ .x = REAL(FN32(0x1.48cbc2p-92), FN64(0x1.48cbc152e9dd8p-92), FN80(0x1.48cbc152e9dd8232p-92), FN128(0x1.48cbc152e9dd8232196e6a8e99f1p-92)), .y = REAL(FN32(0x1.48cbc2p-92), FN64(0x1.48cbc152e9dd8p-92), FN80(0x1.48cbc152e9dd8232p-92), FN128(0x1.48cbc152e9dd8232196e6a8e99f1p-92)) },
{ .x = REAL(FN32(0x1.c4182ap-89), FN64(0x1.c41829d201909p-89), FN80(0x1.c41829d201909304p-89), FN128(0x1.c41829d201909304e2f7d28413abp-89)), .y = REAL(FN32(0x1.c4182ap-89), FN64(0x1.c41829d201909p-89), FN80(0x1.c41829d201909304p-89), FN128(0x1.c41829d201909304e2f7d28413abp-89)) },
{ .x = REAL(FN32(0x1.36d09cp-85), FN64(0x1.36d09cc061136p-85), FN80(0x1.36d09cc061136514p-85), FN128(0x1.36d09cc0611365135c0a60bacd86p-85)), .y = REAL(FN32(0x1.36d09cp-85), FN64(0x1.36d09cc061136p-85), FN80(0x1.36d09cc061136514p-85), FN128(0x1.36d09cc0611365135c0a60bacd86p-85)) },
{ .x = REAL(FN32(0x1.ab5ed8p-82), FN64(0x1.ab5ed788857abp-82), FN80(0x1.ab5ed788857aaafap-82), FN128(0x1.ab5ed788857aaafa9e8e4500da98p-82)), .y = REAL(FN32(0x1.ab5ed8p-82), FN64(0x1.ab5ed788857abp-82), FN80(0x1.ab5ed788857aaafap-82), FN128(0x1.ab5ed788857aaafa9e8e4500da98p-82)) },
{ .x = REAL(FN32(0x1.25d134p-78), FN64(0x1.25d1342ddbc45p-78), FN80(0x1.25d1342ddbc4558cp-78), FN128(0x1.25d1342ddbc4558c4d01cf709648p-78)), .y = REAL(FN32(0x1.25d134p-78), FN64(0x1.25d1342ddbc45p-78), FN80(0x1.25d1342ddbc4558cp-78), FN128(0x1.25d1342ddbc4558c4d01cf709648p-78)) },
{ .x = REAL(FN32(0x1.93ffa8p-75), FN64(0x1.93ffa7bf0e2dfp-75), FN80(0x1.93ffa7bf0e2df5ap-75), FN128(0x1.93ffa7bf0e2df5a0e9e27d3acea3p-75)), .y = REAL(FN32(0x1.93ffa8p-75), FN64(0x1.93ffa7bf0e2dfp-75), FN80(0x1.93ffa7bf0e2df5ap-75), FN128(0x1.93ffa7bf0e2df5a0e9e27d3acea3p-75)) },
{ .x = REAL(FN32(0x1.15bfc4p-71), FN64(0x1.15bfc35359bfap-71), FN80(0x1.15bfc35359bf98dep-71), FN128(0x1.15bfc35359bf98dea0cbb6186e1p-71)), .y = REAL(FN32(0x1.15bfc4p-71), FN64(0x1.15bfc35359bfap-71), FN80(0x1.15bfc35359bf98dep-71), FN128(0x1.15bfc35359bf98dea0cbb6186e1p-71)) },
{ .x = REAL(FN32(0x1.7de7acp-68), FN64(0x1.7de7ac929b677p-68), FN80(0x1.7de7ac929b677232p-68), FN128(0x1.7de7ac929b6772321d181a619756p-68)), .y = REAL(FN32(0x1.7de7acp-68), FN64(0x1.7de7ac929b677p-68), FN80(0x1.7de7ac929b677232p-68), FN128(0x1.7de7ac929b6772321d181a619756p-68)) },
{ .x = REAL(FN32(0x1.068f46p-64), FN64(0x1.068f46a4cad72p-64), FN80(0x1.068f46a4cad71e82p-64), FN128(0x1.068f46a4cad71e8274009223180bp-64)), .y = REAL(FN32(0x1.068f46p-64), FN64(0x1.068f46a4cad72p-64), FN80(0x1.068f46a4cad71e82p-64), FN128(0x1.068f46a4cad71e8274009223180bp-64)) },
{ .x = REAL(FN32(0x1.690502p-61), FN64(0x1.6905012296e7dp-61), FN80(0x1.6905012296e7c9f4p-61), FN128(0x1.6905012296e7c9f35f80c8f0411p-61)), .y = REAL(FN32(0x1.690502p-61), FN64(0x1.6905012296e7dp-61), FN80(0x1.6905012296e7c9f4p-61), FN128(0x1.6905012296e7c9f35f80c8f0411p-61)) },
{ .x = REAL(FN32(0x1.f066e2p-58), FN64(0x1.f066e18f8f7ebp-58), FN80(0x1.f066e18f8f7eb5aep-58), FN128(0x1.f066e18f8f7eb5aea351144a5976p-58)), .y = REAL(FN32(0x1.f066e2p-58), FN64(0x1.f066e18f8f7ebp-58), FN80(0x1.f066e18f8f7eb5aep-58), FN128(0x1.f066e18f8f7eb5aea351144a5976p-58)) },
{ .x = REAL(FN32(0x1.5546bcp-54), FN64(0x1.5546bb12b2a72p-54), FN80(0x1.5546bb12b2a71ce8p-54), FN128(0x1.5546bb12b2a71ce81047bdf31d81p-54)), .y = REAL(FN32(0x1.5546bcp-54), FN64(0x1.5546bb12b2a72p-54), FN80(0x1.5546bb12b2a71ce8p-54), FN128(0x1.5546bb12b2a71ce81047bdf31d8ep-54)) },
{ .x = REAL(FN32(0x1.d54142p-51), FN64(0x1.d5414139b5a5cp-51), FN80(0x1.d5414139b5a5c7cp-51), FN128(0x1.d5414139b5a5c7bf1662a52e4891p-51)), .y = REAL(FN32(0x1.d54142p-51), FN64(0x1.d5414139b5a5cp-51), FN80(0x1.d5414139b5a5c7cp-51), FN128(0x1.d5414139b5a5c7bf1662a52e50c7p-51)) },
{ .x = REAL(FN32(0x1.429cdcp-47), FN64(0x1.429cdcd7ace2p-47), FN80(0x1.429cdcd7ace1f954p-47), FN128(0x1.429cdcd7ace1f9535f63d18fd1e4p-47)), .y = REAL(FN32(0x1.429cdcp-47), FN64(0x1.429cdcd7ace2p-47), FN80(0x1.429cdcd7ace1f954p-47), FN128(0x1.429cdcd7ace1f9535f63d1927d05p-47)) },
{ .x = REAL(FN32(0x1.bb97bp-44), FN64(0x1.bb97afa88db6bp-44), FN80(0x1.bb97afa88db6b6d2p-44), FN128(0x1.bb97afa88db6b6d2a3294025c099p-44)), .y = REAL(FN32(0x1.bb97bp-44), FN64(0x1.bb97afa88db6bp-44), FN80(0x1.bb97afa88db6b6d2p-44), FN128(0x1.bb97afa88db6b6d2a32941e1b85bp-44)) },
{ .x = REAL(FN32(0x1.30f848p-40), FN64(0x1.30f848c3e16dap-40), FN80(0x1.30f848c3e16d9dbp-40), FN128(0x1.30f848c3e16d9db0d02c5c19f469p-40)), .y = REAL(FN32(0x1.30f848p-40), FN64(0x1.30f848c3e16dap-40), FN80(0x1.30f848c3e16d9dbp-40), FN128(0x1.30f848c3e16d9db0d02cec5e869cp-40)) },
{ .x = REAL(FN32(0x1.a35564p-37), FN64(0x1.a355640d55f6cp-37), FN80(0x1.a355640d55f6b8d4p-37), FN128(0x1.a355640d55f6b8d31e3cfea3b011p-37)), .y = REAL(FN32(0x1.a35564p-37), FN64(0x1.a355640d55f6cp-37), FN80(0x1.a355640d55f6b8d4p-37), FN128(0x1.a355640d55f6b8d31e9ac13433e8p-37)) },
{ .x = REAL(FN32(0x1.204ab4p-33), FN64(0x1.204ab4c92b19ap-33), FN80(0x1.204ab4c92b199f12p-33), FN128(0x1.204ab4c92b199f1124c9ef10890cp-33)), .y = REAL(FN32(0x1.204ab4p-33), FN64(0x1.204ab4c92b19ap-33), FN80(0x1.204ab4c92b199f12p-33), FN128(0x1.204ab4c92b199f11434198666086p-33)) },
{ .x = REAL(FN32(0x1.8c66b8p-30), FN64(0x1.8c66b8949b434p-30), FN80(0x1.8c66b8949b433ab8p-30), FN128(0x1.8c66b8949b433ab79295a8b6bc7p-30)), .y = REAL(FN32(0x1.8c66b8p-30), FN64(0x1.8c66b8949b434p-30), FN80(0x1.8c66b8949b433accp-30), FN128(0x1.8c66b8949b433acb5f9a55e0a624p-30)) },
{ .x = REAL(FN32(0x1.10869ep-26), FN64(0x1.10869ee62abe4p-26), FN80(0x1.10869ee62abe385ep-26), FN128(0x1.10869ee62abe385e34c6e3fda18dp-26)), .y = REAL(FN32(0x1.10869ep-26), FN64(0x1.10869ee62abe4p-26), FN80(0x1.10869ee62abe3ecep-26), FN128(0x1.10869ee62abe3ecd63bbe90c430ep-26)) },
{ .x = REAL(FN32(0x1.76b91ap-23), FN64(0x1.76b91a7c7ac59p-23), FN80(0x1.76b91a7c7ac58d82p-23), FN128(0x1.76b91a7c7ac58d818891797cbe22p-23)), .y = REAL(FN32(0x1.76b91ap-23), FN64(0x1.76b91a7c7ac9cp-23), FN80(0x1.76b91a7c7ac9bc04p-23), FN128(0x1.76b91a7c7ac9bc03ad0ea2ed2c35p-23)) },
{ .x = REAL(FN32(0x1.019f42p-19), FN64(0x1.019f42359467dp-19), FN80(0x1.019f42359467d14ap-19), FN128(0x1.019f42359467d1490de40385c2b7p-19)), .y = REAL(FN32(0x1.019f42p-19), FN64(0x1.019f423595c3bp-19), FN80(0x1.019f423595c3ae34p-19), FN128(0x1.019f423595c3ae33495219be0c45p-19)) },
{ .x = REAL(FN32(0x1.623afcp-16), FN64(0x1.623afb09ac0ecp-16), FN80(0x1.623afb09ac0ebfc4p-16), FN128(0x1.623afb09ac0ebfc4731984d7ebbcp-16)), .y = REAL(FN32(0x1.623afcp-16), FN64(0x1.623afb0a8e227p-16), FN80(0x1.623afb0a8e22728p-16), FN128(0x1.623afb0a8e22727f7e7bce788d8cp-16)) },
{ .x = REAL(FN32(0x1.e7111ap-13), FN64(0x1.e711192d4c944p-13), FN80(0x1.e711192d4c9447aep-13), FN128(0x1.e711192d4c9447ae1e4316a8e422p-13)), .y = REAL(FN32(0x1.e7111ap-13), FN64(0x1.e71119c03a21cp-13), FN80(0x1.e71119c03a21c4bcp-13), FN128(0x1.e71119c03a21c4bcdc8ce022dfbbp-13)) },
{ .x = REAL(FN32(0x1.4edbc2p-9), FN64(0x1.4edbc14f24a5fp-9), FN80(0x1.4edbc14f24a5f148p-9), FN128(0x1.4edbc14f24a5f147b4ce1f941cd8p-9)), .y = REAL(FN32(0x1.4edbf2p-9), FN64(0x1.4edbf10dbe2ap-9), FN80(0x1.4edbf10dbe29fc4p-9), FN128(0x1.4edbf10dbe29fc40a33c12c03f0bp-9)) },
{ .x = REAL(FN32(0x1.cc6e2ap-6), FN64(0x1.cc6e29ccd2643p-6), FN80(0x1.cc6e29ccd2642bc2p-6), FN128(0x1.cc6e29ccd2642bc2989b6b6ba7a9p-6)), .y = REAL(FN32(0x1.cc8d34p-6), FN64(0x1.cc8d33c920c91p-6), FN80(0x1.cc8d33c920c90b54p-6), FN128(0x1.cc8d33c920c90b54b70ca422f463p-6)) },
{ .x = REAL(FN32(0x1.3c8bbcp-2), FN64(0x1.3c8bbcbcd0a4ep-2), FN80(0x1.3c8bbcbcd0a4de16p-2), FN128(0x1.3c8bbcbcd0a4de15c8ead9da0344p-2)), .y = REAL(FN32(0x1.47079cp-2), FN64(0x1.47079d15dba27p-2), FN80(0x1.47079d15dba272dap-2), FN128(0x1.47079d15dba272da916a1d212fe3p-2)) },
{ .x = REAL(FN32(0x1.b34024p1), FN64(0x1.b34023839ee2bp1), FN80(0x1.b34023839ee2b15ep1), FN128(0x1.b34023839ee2b15df442eb8bc47dp1)), .y = REAL(FN32(0x1.0f17dcp-2), FN64(0x1.0f17d7b42cc42p-2), FN80(0x1.0f17d7b42cc42846p-2), FN128(0x1.0f17d7b42cc428458295649312c1p-2)) },
{ .x = REAL(FN32(0x1.2b3c18p5), FN64(0x1.2b3c186a7d3bep5), FN80(0x1.2b3c186a7d3bd9fp5), FN128(0x1.2b3c186a7d3bd9f097ee01f01716p5)), .y = REAL(FN32(-0x1.36e69ep-2), FN64(-0x1.36e6646002fc5p-2), FN80(-0x1.36e6646002ff9deep-2), FN128(-0x1.36e6646002ff9d9b739fad5f1028p-2)) },
{ .x = REAL(FN32(0x1.9b72a2p8), FN64(0x1.9b72a1926c325p8), FN80(0x1.9b72a1926c324baap8), FN128(0x1.9b72a1926c324baad0e742aa1fbep8)), .y = REAL(FN32(-0x1.9e8042p-4), FN64(-0x1.9e872c51d8381p-4), FN80(-0x1.9e872c51d87e222ap-4), FN128(-0x1.9e872c51d87e14f8d382081c74c5p-4)) },
{ .x = REAL(FN32(0x1.1adedp12), FN64(0x1.1adecf14aa629p12), FN80(0x1.1adecf14aa629406p12), FN128(0x1.1adecf14aa6294056f9efdd4f5d3p12)), .y = REAL(FN32(-0x1.0156dap1), FN64(-0x1.017bf1cd7d617p1), FN80(-0x1.017bf1cd7cbf049cp1), FN128(-0x1.017bf1cd7cbf1b5ff477c19b8968p1)) },
{ .x = REAL(FN32(0x1.84f25cp15), FN64(0x1.84f25cbc6a479p15), FN80(0x1.84f25cbc6a478b88p15), FN128(0x1.84f25cbc6a478b87797a9d04d202p15)), .y = REAL(FN32(0x1.827f04p-2), FN64(0x1.842dc261234a8p-2), FN80(0x1.842dc2611911bd8ep-2), FN128(0x1.842dc261191089da35127fe3e778p-2)) },
{ .x = REAL(FN32(0x1.0b66ap19), FN64(0x1.0b669fc189113p19), FN80(0x1.0b669fc189112feep19), FN128(0x1.0b669fc189112fed23844bf35061p19)), .y = REAL(FN32(0x1.247ae6p0), FN64(0x1.2004d289700d3p0), FN80(0x1.2004d2896ec6f062p0), FN128(0x1.2004d2896eb753d57a0c0ffb1081p0)) },
{ .x = REAL(FN32(0x1.6fad1cp22), FN64(0x1.6fad1baa1c77ap22), FN80(0x1.6fad1baa1c77a1e6p22), FN128(0x1.6fad1baa1c77a1e610d5e86e8e86p22)), .y = REAL(FN32(-0x1.c1ca8ep-5), FN64(-0x1.1df308bc70322p-3), FN80(-0x1.1df308b8913f30e6p-3), FN128(-0x1.1df308b8911cdd09d0089bcaee6bp-3)) },
{ .x = REAL(FN32(0x1.f98e06p25), FN64(0x1.f98e0609e7248p25), FN80(0x1.f98e0609e7247e9cp25), FN128(0x1.f98e0609e7247e9c57261f9803f8p25)), .y = REAL(FN32(0x1.eb2484p4), FN64(-0x1.64e5b0de5715fp4), FN80(-0x1.64e5b135010dbp4), FN128(-0x1.64e5b134ebd68e19424a3b78e69bp4)) },
{ .x = REAL(FN32(0x1.5b91a4p29), FN64(0x1.5b91a426cee91p29), FN80(0x1.5b91a426cee9170cp29), FN128(0x1.5b91a426cee9170b7bea35b882bbp29)), .y = REAL(FN32(0x1.7aa204p-2), FN64(-0x1.dcb8893ab2b47p0), FN80(-0x1.dcb8854b3831d00ep0), FN128(-0x1.dcb8854b81f5c5fef96d34780482p0)) },
{ .x = REAL(FN32(0x1.dde842p32), FN64(0x1.dde841b55c808p32), FN80(0x1.dde841b55c807fbp32), FN128(0x1.dde841b55c807fafca6209ddb3c1p32)), .y = REAL(FN32(-0x1.a28b5p-5), FN64(0x1.b6c17374c0535p-1), FN80(0x1.b6c1725f412e2e9ep-1), FN128(0x1.b6c1725e8732d3b48c662877ca45p-1)) },
/*
 * SPDX-License-Identifier: BSD-3-Clause
 *
 * Copyright © 2025 Keith Packard
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 *
 * 2. Redistributions in binary form must reproduce the above
 *    copyright notice, this list of conditions and the following
 *    disclaimer in the documentation and/or other materials provided
 *    with the distribution.
 *
 * 3. Neither the name of the copyright holder nor the names of its
 *    contributors may be used to endorse or promote products derived
 *    from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
 * COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 */
